/*
	时间：2021.4.19
	作者：小鑫
	功能：
		1.了解什么是变量
		2.了解常用的控制符 %d %c %f %x %o
		2.进制的表示与转换 

*/

#include<stdio.h>

int main(void)
{
//	int i = 10.6;    //int是整型，如果赋值的内容是浮点数，则会遗失精度，即小数点后的精度丢失。 
//	printf("%d", i);  // %d 表示是以十进制的格式输出到显示屏上。

//至于为什么要用控制符？ 
//因为定义变量的时候，会分配一块地址，而计算机只能存储二进制代码，所以解码的时候要给定解码的规则。

//思考：如果定义整形变量，输出时用控制符输出解码成浮点型可不可以？

//尝试如下：
	int s = 12;
	printf("int s = 12 时，浮点=%f\n", s); 
	double h = 12.000;
	printf("double h = 12.000 时，整数型=%d\n", h); 
//运行结果如下：	
//---------------------------------
// int s = 12 时，浮点=0.000000
//double h = 12.000 时，整数型=0 
//---------------------------------

	char m = 'A';  //这里需要注意的是字符的赋值是单引号，不是双引号。字符表示的是单个字符。 
//	char m = "A";  //为什么不能用双引号呢？
//因为双引号是形容字符串的，字符串中的最后一个是 \0。它的作用是结束符，标志字符串到此截止。	 
	printf("%c\n", m);
	
	//进制转换
	//%d表示以十进制输出
	//%x或%X表示以十六进制输出
	//%o表示以八进制输出
	int t = 10;
	printf("10的十进制=%d\n", t);
	printf("10的十六进制=%X\n", t);
	printf("10的八进制=%o\n", t); 
	
	//在赋值上也可以写八进制，十六进制的形式
	int l = 0xA; // 十六进制的数前面加前缀 (0x)表示 
	int k = 012; // 八进制前面加前缀 0表示
	printf("%d %d", l, k); 
	
	return 0;
} 